package com.zxl.designpattern.behavioral.visitor; /**
 * 动物园类
 * 管理动物集合并接受访问者
 */
import java.util.ArrayList;
import java.util.List;

public class Zoo {

    private final List<IAnimal> animals;  // 动物列表
    
    /**
     * 构造函数，初始化动物列表
     */
    public Zoo() {
        animals = new ArrayList<>();
    }
    
    /**
     * 添加动物
     * @param animal 要添加的动物
     */
    public void addAnimal(IAnimal animal) {
        animals.add(animal);
    }
    
    /**
     * 接受访问者
     * @param visitor 访问者
     */
    public void accept(IVisitor visitor) {
        for (IAnimal animal : animals) {
            animal.accept(visitor);
        }
    }
}    